package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 违规管理对象 ev_violation
 * 
 * @author wtd
 * @date 2025-11-15
 */
public class EvViolation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 违规记录ID */
    private Long violationId;

    /** 电动车ID */
    @Excel(name = "电动车ID")
    private Long vehicleId;

    /** 人员ID */
    @Excel(name = "人员ID")
    private Long personId;

    /** 违规类型（超速/违规停放/无牌行驶等） */
    @Excel(name = "违规类型", readConverterExp = "超=速/违规停放/无牌行驶等")
    private String violationType;

    /** 证据图片（Base64） */
    @Excel(name = "证据图片Base64")
    private String evidenceImage;

    /** 处罚措施 */
    @Excel(name = "处罚措施")
    private String penalty;

    /** 违规时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "违规时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date violationTime;

    /** 处理状态（0未处理 1已处理） */
    @Excel(name = "处理状态", readConverterExp = "0=未处理,1=已处理")
    private Integer status;

    /** 处理人ID（关联sys_user） */
    @Excel(name = "处理人ID", readConverterExp = "关=联sys_user")
    private Long handlerId;

    public void setViolationId(Long violationId) 
    {
        this.violationId = violationId;
    }

    public Long getViolationId() 
    {
        return violationId;
    }

    public void setVehicleId(Long vehicleId) 
    {
        this.vehicleId = vehicleId;
    }

    public Long getVehicleId() 
    {
        return vehicleId;
    }

    public void setPersonId(Long personId) 
    {
        this.personId = personId;
    }

    public Long getPersonId() 
    {
        return personId;
    }

    public void setViolationType(String violationType) 
    {
        this.violationType = violationType;
    }

    public String getViolationType() 
    {
        return violationType;
    }

    public void setEvidenceImage(String evidenceImage) 
    {
        this.evidenceImage = evidenceImage;
    }

    public String getEvidenceImage() 
    {
        return evidenceImage;
    }

    public void setPenalty(String penalty) 
    {
        this.penalty = penalty;
    }

    public String getPenalty() 
    {
        return penalty;
    }

    public void setViolationTime(Date violationTime) 
    {
        this.violationTime = violationTime;
    }

    public Date getViolationTime() 
    {
        return violationTime;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public void setHandlerId(Long handlerId) 
    {
        this.handlerId = handlerId;
    }

    public Long getHandlerId() 
    {
        return handlerId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("violationId", getViolationId())
            .append("vehicleId", getVehicleId())
            .append("personId", getPersonId())
            .append("violationType", getViolationType())
            .append("evidenceImage", getEvidenceImage())
            .append("penalty", getPenalty())
            .append("violationTime", getViolationTime())
            .append("status", getStatus())
            .append("handlerId", getHandlerId())
            .append("remark", getRemark())
            .toString();
    }
}
